/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.corespring.restaurant.web.controller;

import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.corespring.restaurant.model.Contenido;
import org.corespring.restaurant.model.Usuario;
import org.corespring.restaurant.service.ContenidoManager;
import org.corespring.restaurant.service.UsuarioManager;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.SessionStatus;

/**
 *
 * @author Aldo
 */
@Controller
public class ContenidoController {

    ContenidoManager contenidoManager;
    UsuarioManager usuarioManager;

    @Autowired
    public ContenidoController(ContenidoManager oContenidoManager, UsuarioManager oUsuarioManager) {
        this.contenidoManager = oContenidoManager;
        this.usuarioManager = oUsuarioManager;
    }

    @RequestMapping("/adm_contenidos.htm")
    public void adm_contenidos(Model model, @ModelAttribute("Contenido") Contenido contenido) {
		List<Contenido> contenidos = contenidoManager.obtenerContenidos();
                model.addAttribute("contenidos", contenidos);
                model.addAttribute("contenido", contenido);
    }

     @RequestMapping(value = "/adm_registroContenido.htm", method = RequestMethod.GET)
    public @ModelAttribute("contenido") Contenido obtenerContenido(
            @RequestParam(value = "idcontenido", required = false) String  idContenido, HttpServletRequest request) {
        if (idContenido == null) {
            return new Contenido();
        }
        if (!(idContenido.isEmpty() || idContenido.equals(""))) {
            Contenido contenido = contenidoManager.obtenerContenido(Integer.parseInt(idContenido));
            if (contenido == null) {
                return new Contenido();
            }
            return contenido;
        }
        return new Contenido();
    }

    @RequestMapping(value = "/adm_registroContenido.htm", method = RequestMethod.POST)
    public String guardarContenido( @RequestParam(value = "cboEstado", required = false) char estado,
            @ModelAttribute("contenido") Contenido contenido,
            BindingResult result, SessionStatus status) {
        Date fecha = new Date();
        String hora = fecha.getHours()+":"+fecha.getMinutes()+":"+fecha.getSeconds();
        Usuario usu = usuarioManager.obtenerUsuarioById("admin");
        
        contenido.setEreg(estado);
        contenido.setFreg(fecha);
        contenido.setHreg(hora);
        contenido.setUsuario(usu);

        contenidoManager.grabarContenido(contenido);
        return "redirect:adm_contenidos.htm";
    }

    @RequestMapping("/adm_eliminarContenido.htm")
    public String eliminarContenido(
            @RequestParam(value = "idcontenido", required = false) int idcontenido) {
        contenidoManager.eliminarContenido(idcontenido);
        return "redirect:adm_contenidos.htm";
    }
}
